package com.soyoung.config;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.SortingParams;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 测试sortSet
 * @author: zhuhongqiang
 * @since : 2018/5/16.
 */
public class RedisSortedSet {
    static Jedis jedis = null;
    static final String DATASOURCE_URL = "127.0.0.1";
    static final int DATASOURCE_SORT = 6379;
    static final String DATASOURCE_PASS = "";
    static final int DATASOURCE_SELECT = 1;

    public static void RedisSortedSet() {
        //基本配置
        jedis = new Jedis(DATASOURCE_URL, DATASOURCE_SORT);
        jedis.select(DATASOURCE_SELECT);
    }

    public static Object testZAddAndZCardAndZScore() {
        RedisSortedSet();
        //zadd 将一个或多个 member 元素及其 score 值加入到有序集 key 当中。
        //zcard 返回有序集 key 的基数。
        //zscore 返回有序集 key 中，成员 member 的 score 值。
        jedis.zadd("sortedSet", 1111, "value:10");
        Map<String, Double> map = new HashMap<String, Double>();
        for (int i = 0; i <= 10; i++) {
            map.put("value:" + i, Double.valueOf(i)); //覆盖了上面的赋值
        }
        Long res = jedis.zadd("sortedSet", map);
        return res;
    }

    public static void testZincrby(){
        //zincrby 为有序集 key 的成员 member 的 score 值加上增量 increment 。
        jedis.zadd("sortedSet",1111,"value:10");
        jedis.zincrby("sortedSet",-111.1,"value:10");

    }

    public static void main(String[] args) {
       /* Object res = testZAddAndZCardAndZScore();
        System.out.println(res);
        jedis.zadd("中文",153,"a");
        jedis.zadd("中文",113,"b");
        jedis.zadd("中文",123,"c");
        jedis.zadd("中文",133,"d");
        jedis.zadd("中文",143,"e");
        jedis.lpush("price","1","21","4","3");
        SortingParams sortingParameters = new SortingParams();
        List<String> list =  jedis.sort("price",sortingParameters.desc());
        System.out.println(list);*/
        //System.out.println(jedis.zrevrange("中文",0,150));

        List<Map> list = new ArrayList<>();
        Map m1  =new HashMap();
        Map m2  =new HashMap();
        m1.put("a",1);
        m2.put("a",1);
        list.add(m1); list.add(m2);
        System.out.println(list);
        boolean flag = list.remove(m2);
        System.out.println(list.toArray());
    }
}
